#!/bin/bash

# 方法一: 使用gpasswd命令删除用户
del_sudo_users_by_gpasswd() {
  while [[ -n $1 ]]; do
    # 从sudo组中删除用户
    gpasswd -d $1 sudo
    shift # 移动到下一个参数
  done
  # 禁用sudo组的sudo权限
  sed -i 's/^\s*%sudo/# &/g' /etc/sudoers
}
export del_sudo_users_by_gpasswd

# 方法二: 使用deluser命令删除用户
del_sudo_users_by_deluser() {
  while [[ -n $1 ]]; do
    # 从sudo组中删除用户
    deluser $1 sudo
    shift # 移动到下一个参数
  done
  # 禁用sudo组的sudo权限
  sed -i 's/^\s*%sudo/# &/g' /etc/sudoers
}
export del_sudo_users_by_deluser

# 方法三: 使用usermod命令删除用户
del_sudo_users_by_usermod() {
  while [[ -n $1 ]]; do
    # 从sudo组中删除用户
    usermod -G $(id -Gn $1 | sed 's/sudo//') $1
    shift # 移动到下一个参数
  done
  # 禁用sudo组的sudo权限
  sed -i 's/^\s*%sudo/# &/g' /etc/sudoers
}
export del_sudo_users_by_usermod

main() {
  echo "请选择要测试的方法:"
  echo "1) 使用gpasswd命令删除用户"
  echo "2) 使用deluser命令删除用户"
  echo "3) 使用usermod命令删除用户"
  echo "4) 退出"
  read -p "请输入选项 (1-4): " choice

  case $choice in
    1)
      echo "Testing del_sudo_users_by_gpasswd method..."
      del_sudo_users_by_gpasswd "$@"
      ;;
    2)
      echo "Testing del_sudo_users_by_deluser method..."
      del_sudo_users_by_deluser "$@"
      ;;
    3)
      echo "Testing del_sudo_users_by_usermod method..."
      del_sudo_users_by_usermod "$@"
      ;;
    4)
      echo "退出"
      exit 0
      ;;
    *)
      echo "无效选项"
      main "$@"
      ;;
  esac
}

if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
  if [[ $EUID -ne 0 ]]; then
    echo "Please run as root" && exit
  fi
  main "$@"
fi
